package com.bbva.gptf.back.servicio.simulacion;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.bbva.gptf.back.dominio.SpValidaPolitica;
import com.bbva.gptf.dto.bean.InstrumentosSimulacion;
import com.bbva.gptf.dto.bean.TipoNivel;
import com.bbva.gptf.dto.bean.Validacion;
import com.bbva.gptf.dto.servicio.simulacion.ServicioValidaPolitica;
import com.bbva.jee.arq.spring.core.httpService.HttpService;

/**
 * @author iavilalo
 */
@HttpService(serviceName = "servicioValidaPoliticaHttp")
public class ServicioValidaPoliticaImpl implements ServicioValidaPolitica {

	private final int CONTRATO = 0;
	private final int VALOR_BMV = 1;
	private final int EMISORA = 2;
	private final int SERIE = 3;
	private final int TITULOS = 4;
	private final int TITULOS_OBJ = 5;
	private final int VALUACION = 6;
	private final int SALDO_EFE = 7;
	private final int VAL_CARTERA = 8;
	private final int GRUPO = 9;
	private final int SUBCLASIF= 10;
	private final int EVALUACION = 11;
	private final int DELTA_CONT = 12;
	private final int VALOR = 13;
	private final int CALIFICACION = 14;
	private final int INV_REPORT = 15;
	private final int REPORTOS = 16;//
	private final int DIA_POR_VENCER = 17;
	private final int TENENCIA = 18;
	private final int PLAZO = 19;//
	private final int CTA_SIC = 20;
	private final int NVO_PARAM = 21;
	private final int GPO_CAPTURADO = 22;
	private final int OF_PU_PRI = 23;
	private final int INDICE_IPC = 24;
	

	@Autowired
	private SpValidaPolitica spValidaPolitica;

	@Override
	public List<Validacion> obtieneRestricciones(final List<InstrumentosSimulacion> listaPosiciones) {
		Object[][] objetos = new Object[listaPosiciones.size()][25];
		Integer indice = 0;
//		for (InstrumentosSimulacion simulacion : listaPosiciones) {
//			if (simulacion.getTipoNivel().equals(TipoNivel.TERCERNIVEL)) {
//				objetos[indice][CONTRATO] = simulacion.getCdContrato().longValue();
//				objetos[indice][VALOR_BMV] = simulacion.getCdValorBmv();
//				objetos[indice][EMISORA] = simulacion.getEmisora();
//				objetos[indice][SERIE] = simulacion.getSerie();
//				if (simulacion.getInstrumentoActual() != null) {
//					objetos[indice][TITULOS] = simulacion.getInstrumentoActual().getTitulos();
//				}
//				if (simulacion.getInstrumentoObjetivo() != null) {
//					System.out.println("ob:" + simulacion.getInstrumentoObjetivo().getTitulos());
//					System.out.println("ac:" + simulacion.getInstrumentoActual().getTitulos());
//					System.out.println("ac:" + simulacion.getTpMercado());
//					//System.out.println("ac:" + simulacion.getTpTenencia());
//					objetos[indice][TITULOS_OBJ] = simulacion.getInstrumentoActual().getTitulos();//
//					objetos[indice][VALUACION] = simulacion.getInstrumentoObjetivo().getMonto();//
//					objetos[indice][SALDO_EFE] = (simulacion.getInstrumentoObjetivo().getLiquidez() != null) ?
//							simulacion.getInstrumentoObjetivo().getLiquidez() : simulacion.getInstrumentoActual().getLiquidez();//
//					objetos[indice][VAL_CARTERA] = simulacion.getInstrumentoObjetivo().getValuacionCartera();//
//				}
//				//no necesario
//				objetos[indice][GRUPO] = simulacion.getCdGrupo();//
//				objetos[indice][SUBCLASIF] = simulacion.getCdSubclasif();//
//				objetos[indice][DIA_POR_VENCER] = simulacion.getCtDiaPorVencer();//
//				objetos[indice][INDICE_IPC] = simulacion.getNbIndiceIpc();//
//				if (simulacion.getInstrumentoRestriccion() != null) {
//					objetos[indice][TENENCIA] = simulacion.getInstrumentoRestriccion().getTpTenencia();
//					objetos[indice][EVALUACION] = simulacion.getInstrumentoRestriccion().getNbEvaluacion();
//					objetos[indice][DELTA_CONT] = simulacion.getInstrumentoRestriccion().getNuDeltaCont();
//					objetos[indice][VALOR] = simulacion.getInstrumentoRestriccion().getNuValor();
//					objetos[indice][CALIFICACION] = simulacion.getInstrumentoRestriccion().getNuCalificacion();
//					objetos[indice][INV_REPORT] = simulacion.getInstrumentoRestriccion().getStInvReport();
//					objetos[indice][CTA_SIC] = simulacion.getInstrumentoRestriccion().getStCtaSic();
//					objetos[indice][NVO_PARAM] = simulacion.getInstrumentoRestriccion().getStNvoParam();
//					objetos[indice][GPO_CAPTURADO] = simulacion.getInstrumentoRestriccion().getNuGpoCaptura();
//					objetos[indice][OF_PU_PRI] = simulacion.getInstrumentoRestriccion().getStOfPuPri();
//				}
//				//no necesario
//				objetos[indice][TENENCIA] = "D";//falta poner o subir
//				objetos[indice][REPORTOS] = 0;//
//				objetos[indice][PLAZO] = 5;//
//				
//				
//				
//				
//				indice++;
//			}
//		}
		return  new ArrayList<Validacion>();
		///return spValidaPolitica.execute(objetos);
	}

	public void setSpValidaPolitica(final SpValidaPolitica spValidaPolitica) {
		this.spValidaPolitica = spValidaPolitica;
	}

}

